// 引入工具类
const { historyStore } = require('../../utils/store')
const { formatTime } = require('../../utils/dateUtils')

Page({
  data: {
    historyList: []
  },

  onLoad() {
    console.log('历史记录页面加载')
    this.loadHistory()
  },

  onShow() {
    console.log('历史记录页面显示')
    // 每次显示时刷新历史记录列表
    this.loadHistory()
  },

  // 加载历史记录列表
  loadHistory() {
    const history = historyStore.getHistory()
    console.log('获取历史记录列表:', history)

    // 处理历史记录数据，添加格式化时间
    const processedHistory = history.map(item => ({
      ...item,
      formattedTime: formatTime(item.pubTime || item.publishTime),
      viewTime: formatTime(item.viewTime || new Date().toISOString()),
      contentPreview: this.generateSummary(item.contentText || item.content || ''),
      image: this.extractImage(item.contentHtml || item.content_html || '')
    }))

    this.setData({
      historyList: processedHistory
    })
  },

  // 生成摘要
  generateSummary(content) {
    if (!content) return '无内容摘要'
    // 移除HTML标签
    const text = content.replace(/<[^>]*>/g, '')
    return text.length > 60 ? text.substring(0, 60) + '...' : text
  },

  // 提取图片
  extractImage(htmlContent) {
    if (!htmlContent) return ''
    const imgMatch = htmlContent.match(/<img[^>]+src="([^"]+)"/)
    return imgMatch ? imgMatch[1] : ''
  },

  // 跳转到新闻详情
  goToDetail(event) {
    try {
      const newsId = event.currentTarget.dataset.newsId
      console.log('跳转新闻详情:', newsId)

      if (!newsId) {
        wx.showToast({
          title: '文章ID无效',
          icon: 'error'
        })
        return
      }

      // 重新添加到历史记录（更新浏览时间）
      const newsItem = this.data.historyList.find(item =>
        (item.newsId || item.id) == newsId
      )

      if (newsItem) {
        const app = getApp()
        app.addHistory(newsItem)
      }

      wx.navigateTo({
        url: `/pages/news/detail/detail?id=${newsId}`
      })

    } catch (error) {
      console.error('跳转新闻详情失败:', error)
      wx.showToast({
        title: '跳转失败',
        icon: 'error'
      })
    }
  },

  // 移除单个历史记录
  removeHistory(event) {
    const newsId = event.currentTarget.dataset.newsId
    const that = this

    wx.showModal({
      title: '确认删除',
      content: '确定要删除这条浏览记录吗？',
      success(res) {
        if (res.confirm) {
          // 从历史记录中移除
          const newHistory = that.data.historyList.filter(item =>
            (item.newsId || item.id) != newsId
          )

          // 更新全局状态
          const app = getApp()
          app.globalData.history = newHistory

          // 保存到本地存储
          try {
            wx.setStorageSync('history', newHistory)
          } catch (error) {
            console.error('保存历史记录失败:', error)
          }

          that.loadHistory()
          wx.showToast({
            title: '已删除',
            icon: 'success'
          })
        }
      }
    })
  },

  // 清空所有历史记录
  clearAllHistory() {
    const that = this

    if (this.data.historyList.length === 0) {
      wx.showToast({
        title: '历史记录为空',
        icon: 'none'
      })
      return
    }

    wx.showModal({
      title: '确认清空',
      content: '确定要清空所有浏览记录吗？此操作不可恢复。',
      success(res) {
        if (res.confirm) {
          historyStore.clearHistory()
          that.loadHistory()
          wx.showToast({
            title: '已清空所有记录',
            icon: 'success'
          })
        }
      }
    })
  },

  // 监听导航栏清空事件
  onHistoryCleared() {
    console.log('收到导航栏清空事件')
    this.loadHistory()
  },

  // 跳转到搜索页面
  goToSearch() {
    wx.switchTab({
      url: '/pages/search/search'
    })
  }
})
